{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "3fab5113",
   "metadata": {},
   "source": [
    "_____\n",
    "* 日期：2022-10-19\n",
    "* 课程：Python\n",
    "* 记录人：zhoubilian\n",
    "______"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "84202e0c",
   "metadata": {},
   "source": [
    "# 本周学习目标\n",
    "> 1. 列表的方法\n",
    "> 2. while循环"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "758abb67",
   "metadata": {},
   "source": [
    "# 列表的方法\n",
    "> 1. 使用.Tab查看的方法\n",
    "> 2. 使用help（查看方法的使用规则）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "98f56187",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['Jack', 'Alex', 'Marry', 'Jan']"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "names=[\"Jack\",\"Alex\",\"Marry\",\"Jan\"]\n",
    "names"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7eec5866",
   "metadata": {},
   "source": [
    "# 1.1列表的增加"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "c9ccefc5",
   "metadata": {},
   "outputs": [],
   "source": [
    "names.append(\"Lihua\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "d2be66a1",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['Jack', 'Alex', 'Marry', 'Jan', 'Lihua']"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "names"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "39c1cd93",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Help on built-in function append:\n",
      "\n",
      "append(object, /) method of builtins.list instance\n",
      "    Append object to the end of the list.\n",
      "\n"
     ]
    }
   ],
   "source": [
    "help(names.append)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "55a41faf",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Help on built-in function insert:\n",
      "\n",
      "insert(index, object, /) method of builtins.list instance\n",
      "    Insert object before index.\n",
      "\n"
     ]
    }
   ],
   "source": [
    "help(names.insert)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "ab8735e9",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['Jack', 'Alex', 'Marry', 'Jan', 'Lihua']"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "names"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "2a3cecf2",
   "metadata": {},
   "outputs": [],
   "source": [
    "names.insert(2,\"zbl\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "62e218cd",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['Jack', 'Alex', 'zbl', 'Marry', 'Jan', 'Lihua']"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "names"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e74a9195",
   "metadata": {},
   "source": [
    "## 2.列表的删除"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "bea99235",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Help on built-in function remove:\n",
      "\n",
      "remove(value, /) method of builtins.list instance\n",
      "    Remove first occurrence of value.\n",
      "    \n",
      "    Raises ValueError if the value is not present.\n",
      "\n"
     ]
    }
   ],
   "source": [
    "help(names.remove)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "3299a1d1",
   "metadata": {},
   "outputs": [],
   "source": [
    "names.remove('zbl')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "12ef6d26",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['Jack', 'Alex', 'Marry', 'Jan', 'Lihua']"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "names"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5a0b13ee",
   "metadata": {},
   "source": [
    "* 正确的删除方法的流程\n",
    "> 1. 查询value是否存在列表当中\n",
    "> 2. 对存在的value进行删除"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "fca598ab",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "False"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "\"wang\" in names"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "f4359fe6",
   "metadata": {},
   "outputs": [],
   "source": [
    "names.remove(\"wang\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "662a1f39",
   "metadata": {},
   "outputs": [],
   "source": [
    "if \"wang\" in names:\n",
    "    names.remove(\"wang\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "3a4b7c95",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 实践：删除系统：\n",
    "## 1. 如果输入的值存在，删除；2.如果输入的结构不存在，提示用户查询无结果"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "8f4e29b1",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['Jack', 'Alex', 'Marry', 'Jan', 'Lihua']"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "names"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "698527af",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "请输入删除的内容:Lihua\n",
      "删除成功！\n",
      "['Jack', 'Alex', 'Marry', 'Jan']\n"
     ]
    }
   ],
   "source": [
    "user_input_name = input(\"请输入删除的内容:\")\n",
    "if user_input_name in names:\n",
    "    names.remove(user_input_name)\n",
    "    print(\"删除成功！\")\n",
    "else:\n",
    "    print(\"您输入的结果不存在，删除无效\")\n",
    "print(names)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a7716ef5",
   "metadata": {},
   "source": [
    "_________\n",
    "* 列表的删除"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "id": "04676d80",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 重新建立names列表数据\n",
    "names=['Jack', 'Alex', 'Marry', 'Jan', 'Lihua']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "id": "f1171734",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['Jack', 'Alex', 'Marry', 'Jan', 'Lihua']"
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "names"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "b3c2e17e",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Help on built-in function remove:\n",
      "\n",
      "remove(value, /) method of builtins.list instance\n",
      "    Remove first occurrence of value.\n",
      "    \n",
      "    Raises ValueError if the value is not present.\n",
      "\n"
     ]
    }
   ],
   "source": [
    "help(names.remove)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "b4736c4a",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Help on built-in function pop:\n",
      "\n",
      "pop(index=-1, /) method of builtins.list instance\n",
      "    Remove and return item at index (default last).\n",
      "    \n",
      "    Raises IndexError if list is empty or index is out of range.\n",
      "\n"
     ]
    }
   ],
   "source": [
    "help(names.pop)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "id": "d2e0dd5b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'Lihua'"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "names.pop() # 直接使用pop()，删除最后一位。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "id": "297b3a7c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['Jack', 'Alex', 'Marry', 'Jan']"
      ]
     },
     "execution_count": 43,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "names"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "id": "3ef9f65f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'Marry'"
      ]
     },
     "execution_count": 44,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "names.pop(2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "id": "8b23383b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['Jack', 'Alex', 'Jan']"
      ]
     },
     "execution_count": 45,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "names"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "id": "35572b85",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "3"
      ]
     },
     "execution_count": 46,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(names)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "id": "f8ca17c9",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "输入删除的索引值:2\n"
     ]
    }
   ],
   "source": [
    "pop_index=int(input(\"输入删除的索引值:\"))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "id": "293c51d7",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "删除成功！\n"
     ]
    }
   ],
   "source": [
    "if pop_index<len(names):\n",
    "    names.pop(pop_index)\n",
    "    print(\"删除成功！\")\n",
    "else:\n",
    "    print(\"您输入的值不在index的范围内\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "id": "fd10b053",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['Jack', 'Alex']"
      ]
     },
     "execution_count": 52,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "names"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a03eadd2",
   "metadata": {},
   "source": [
    "## 3.列表的修改"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "id": "3e5d4a54",
   "metadata": {},
   "outputs": [],
   "source": [
    "names[0]=\"zbl\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "id": "4049bbd4",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['zbl', 'Alex']"
      ]
     },
     "execution_count": 54,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "names"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "72d580c5",
   "metadata": {},
   "source": [
    "## 4.列表的其他方法"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "id": "ec8c9db6",
   "metadata": {},
   "outputs": [],
   "source": [
    "names=['Jack','Alex','Marry','Jan','Lihua']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "id": "7b305101",
   "metadata": {},
   "outputs": [],
   "source": [
    "names.clear()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "id": "fe967b90",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[]"
      ]
     },
     "execution_count": 57,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "names"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "id": "1379c1fc",
   "metadata": {},
   "outputs": [],
   "source": [
    "names_class1=['Jack','Alex','Marry','Jan','Lihua']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "id": "9fa61567",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['Jack', 'Alex', 'Marry', 'Jan', 'Lihua']"
      ]
     },
     "execution_count": 66,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "names_class1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "id": "00f6d2b3",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Help on built-in function extend:\n",
      "\n",
      "extend(iterable, /) method of builtins.list instance\n",
      "    Extend list by appending elements from the iterable.\n",
      "\n"
     ]
    }
   ],
   "source": [
    "help(names.extend)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "id": "35c459f7",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['zbl', 'pwj', 'lyy']"
      ]
     },
     "execution_count": 63,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "names_class2=['zbl','pwj','lyy']\n",
    "names_class2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "id": "c8c6e047",
   "metadata": {},
   "outputs": [],
   "source": [
    "names_class1.extend(names_class2)# 注意：使用列表的方法的列表进行扩展"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "id": "c3f5b6c2",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['Jack',\n",
       " 'Alex',\n",
       " 'Marry',\n",
       " 'Jan',\n",
       " 'Lihua',\n",
       " 'zbl',\n",
       " 'pwj',\n",
       " 'lyy',\n",
       " 'zbl',\n",
       " 'pwj',\n",
       " 'lyy']"
      ]
     },
     "execution_count": 72,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "names_class1"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "eb61f161",
   "metadata": {},
   "source": [
    "_________\n",
    "* sort()排序"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "id": "8e7bcd94",
   "metadata": {},
   "outputs": [],
   "source": [
    "立定跳远_男生=[230,250,245,260,270]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "id": "0d071a7c",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Help on built-in function sort:\n",
      "\n",
      "sort(*, key=None, reverse=False) method of builtins.list instance\n",
      "    Sort the list in ascending order and return None.\n",
      "    \n",
      "    The sort is in-place (i.e. the list itself is modified) and stable (i.e. the\n",
      "    order of two equal elements is maintained).\n",
      "    \n",
      "    If a key function is given, apply it once to each list item and sort them,\n",
      "    ascending or descending, according to their function values.\n",
      "    \n",
      "    The reverse flag can be set to sort in descending order.\n",
      "\n"
     ]
    }
   ],
   "source": [
    "help(立定跳远_男生.sort)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "id": "c7797c2b",
   "metadata": {},
   "outputs": [],
   "source": [
    "立定跳远_男生.sort()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "id": "395bdcf7",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[230, 245, 250, 260, 270]"
      ]
     },
     "execution_count": 75,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "立定跳远_男生"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 77,
   "id": "f02ef066",
   "metadata": {},
   "outputs": [],
   "source": [
    "立定跳远_男生.sort(reverse=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 79,
   "id": "6fda9571",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[270, 260, 250, 245, 230]"
      ]
     },
     "execution_count": 79,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "立定跳远_男生"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f689c3bf",
   "metadata": {},
   "source": [
    "# 2.while循环\n",
    "\n",
    "* while True是循环概念中非常重要的一种方式。它可以实现for循环的指定次数，也可以在特定条件下停止。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 83,
   "id": "b696a9a8",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "你是风儿我是沙，缠缠绵绵到天涯，，， 0\n",
      "你是风儿我是沙，缠缠绵绵到天涯，，， 1\n",
      "你是风儿我是沙，缠缠绵绵到天涯，，， 2\n",
      "你是风儿我是沙，缠缠绵绵到天涯，，， 3\n",
      "你是风儿我是沙，缠缠绵绵到天涯，，， 4\n",
      "你是风儿我是沙，缠缠绵绵到天涯，，， 5\n",
      "你是风儿我是沙，缠缠绵绵到天涯，，， 6\n",
      "你是风儿我是沙，缠缠绵绵到天涯，，， 7\n",
      "你是风儿我是沙，缠缠绵绵到天涯，，， 8\n",
      "你是风儿我是沙，缠缠绵绵到天涯，，， 9\n",
      "你是风儿我是沙，缠缠绵绵到天涯，，， 10\n",
      "你是风儿我是沙，缠缠绵绵到天涯，，， 11\n",
      "你是风儿我是沙，缠缠绵绵到天涯，，， 12\n",
      "你是风儿我是沙，缠缠绵绵到天涯，，， 13\n",
      "你是风儿我是沙，缠缠绵绵到天涯，，， 14\n",
      "你是风儿我是沙，缠缠绵绵到天涯，，， 15\n",
      "你是风儿我是沙，缠缠绵绵到天涯，，， 16\n",
      "你是风儿我是沙，缠缠绵绵到天涯，，， 17\n",
      "你是风儿我是沙，缠缠绵绵到天涯，，， 18\n",
      "你是风儿我是沙，缠缠绵绵到天涯，，， 19\n"
     ]
    }
   ],
   "source": [
    "# 死循环\n",
    "count=0\n",
    "while True:\n",
    "    print(\"你是风儿我是沙，缠缠绵绵到天涯，，，\",count)\n",
    "    count=count+1\n",
    "    if count==20:\n",
    "        break\n",
    "    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "f514083f",
   "metadata": {},
   "outputs": [],
   "source": [
    "## 小游戏：猜数字,5次\n",
    "# 1. hide_card : 0-100,大了，小了\n",
    "# 2. guess_digit:50\n",
    "import getpass\n",
    "count=0\n",
    "hide_card=int(input(\"hide_card:\"))\n",
    "\n",
    "while True:\n",
    "    guess_digit=int(input(\"猜一猜（0-100）:\"))\n",
    "\n",
    "   # 对比：\n",
    "if hide_card==guess_digit:\n",
    "    print(\"你超棒！！！\")\n",
    "elif guess_digit>hide_card:\n",
    "    print(\"往小的猜！加油！\")\n",
    "else:\n",
    "    print(\"往大的猜！\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e6c845f3",
   "metadata": {},
   "source": [
    "# 课后练习：\n",
    "> 1. 列表的切片和方法的使用\n",
    ">> 1. 课本P67 练习\n",
    ">> 2. 课本P81 练习\n",
    "> 2. P89 列表：我们已经知道是什么"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "c2a2fd11",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
